home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol099 / menu.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-12-15  |  2.9 KB  |  52 lines

  1. 10  CLEAR:VER$="*** MENU.BAS v2.06  --by Steven Linhart--  revised We 3-Apr-1984 ***"
  2. 20  KEY 1,"LIST ":KEY 2,"FILES ":KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"GOSUB ":KEY 6,"RETURN":KEY 7,")":KEY 8,"CHR$(":KEY 9,"IF ":KEY 10,"RENUM " ' Function key customization
  3. 30  SCREEN 0,1,0,0:COLOR 7,0,0:KEY OFF:WIDTH 80
  4. 40  ON ERROR GOTO 440:DEF SEG=64:POKE 23,PEEK(23)OR 64:POKE 23,PEEK(23)AND 223:IF STICK(0)THEN JYSTK=-1:GOSUB 390:STRIG ON ELSE JYSTK=0 'error trap, caps and numlock state, check for joystick.
  5. 50  CLS:PRINT "This program displays all BASIC files on the selected disk."
  6. 60  PRINT "One program will be in reverse video. Press return to chain to it."
  7. 70  PRINT "Position the selected program with the cursor control keys or the joystick."
  8. 80  PRINT "Press Esc to end, X to exit to DOS, R to recalibrate the joystick, \ to change"
  9. 90  PRINT "directories, or a drive letter [A-M] to choose that drive."
  10. 100  LOCATE 7,1:FILES DRV$+"*.BAS"
  11. 110  Y=8:X=0
  12. 120  F$="":GOSUB 430:COLOR 0,7:FOR L=1 TO 12:LOCATE Y,X+L,0:C$=CHR$(SCREEN(Y,X+L)):PRINT C$:F$=F$+C$:NEXT:COLOR 7,0'- Highlight program at Y,X
  13. 130  K$=INKEY$:IF LEN(K$)=0 THEN IF JYSTK THEN 310 ELSE 130
  14. 140  IF LEN(K$)=2 THEN 230 'Extended character
  15. 150  IF ASC(K$)=13 THEN 290 'Enter
  16. 160  IF K$>="A" AND K$<="M" OR K$>="a" AND K$<="m" THEN DRV$=K$+":":GOTO 50
  17. 170  IF K$="\" OR K$="|" THEN GOSUB 430:GOTO 380
  18. 180  IF K$="X" OR K$="x" THEN CLS:SYSTEM
  19. 190  IF K$="R" OR K$="r" THEN GOSUB 430:IF JYSTK THEN GOSUB 410:GOSUB 390
  20. 200  IF K$="V" OR K$="v" THEN GOSUB 430:LOCATE ,(80-LEN(VER$))\2:COLOR 15:PRINT VER$;:COLOR 7
  21. 210  IF ASC(K$)=27 THEN ON ERROR GOTO 0:CLS:KEY ON:END  'Esc
  22. 220  GOTO 130
  23. 230  R$=RIGHT$(K$,1):A=ASC(R$)
  24. 240  IF A=72 AND Y>8 THEN GOSUB 300:Y=Y-1:GOTO 120 'Up
  25. 250  IF A=80 AND Y<23 THEN GOSUB 300:Y=Y+1:GOTO 120 'Down
  26. 260  IF A=75 AND X>17 THEN GOSUB 300:X=X-18:GOTO 120 'Left
  27. 270  IF A=77 AND X<54 THEN GOSUB 300:X=X+18:GOTO 120 'Right
  28. 280  GOTO 130
  29. 290  IF RIGHT$(F$,4)<>".BAS" THEN GOSUB 430:LOCATE ,1:COLOR 15:PRINT "Not a file!";:COLOR 7:GOSUB 420:GOTO 130 ELSE CLS:RUN DRV$+F$ '- Chain to file
  30. 300  FOR L=1 TO 12:LOCATE Y,X+L:PRINT CHR$(SCREEN(Y,X+L)):NEXT:RETURN '- Remove highlight
  31. 310  JX=STICK(0):JY=STICK(1) '- Check joystick inputs
  32. 320  IF JY<JUP AND Y>8 THEN GOSUB 300:Y=Y-1:GOTO 120 'Up
  33. 330  IF JY>JDOWN AND Y<23 THEN GOSUB 300:Y=Y+1:GOTO 120 'Down
  34. 340  IF JX<JLEFT AND X>17 THEN GOSUB 300:X=X-18:GOTO 120 'Left
  35. 350  IF JX>JRIGHT AND X<54 THEN GOSUB 300:X=X+18:GOTO 120 'Right
  36. 360  L=STRIG(1) OR STRIG(3):IF L THEN 290 'Button
  37. 370  GOTO 130
  38. 380  GOSUB 430:LOCATE ,1:INPUT;"Directory";DIR$:IF DIR$<>"" THEN CHDIR DRV$+DIR$:GOTO 50 ELSE GOSUB 430:GOTO 130 '- Change directory
  39. 390  JX=STICK(0):JLEFT=JX-JX\2:JRIGHT=JX+JX\2:JY=STICK(1):JUP=JY-JY\2:JDOWN=JY+JY\2:JYSTK=-1:RETURN '- Calibrate joystick
  40. 400  FOR L=200 TO 100 STEP-15:SOUND(L*5+50),0.1:NEXT:RETURN '- Sound BubbleDown
  41. 410  FOR L=100 TO 200 STEP 15:SOUND(L*5+50),0.1:NEXT:RETURN '- Sound BubbleUp
  42. 420  SOUND 800,1:SOUND 650,1:RETURN '- Sound Boop
  43. 430  LOCATE 25,1:PRINT SPC(79);:RETURN '- Clear error msgs
  44. 440  IF ERL<>100 AND ERL<>380 THEN 500 '- Error Trapping
  45. 450  GOSUB 430:GOSUB 400:COLOR 15
  46. 460  IF ERR=53 THEN LOCATE 24,1:PRINT "No .BAS files in directory.";:COLOR 7:RESUME 110
  47. 470  IF ERR=76 THEN LOCATE 25,45:PRINT "Path not found. Try again.";:COLOR 7:RESUME 380
  48. 480  IF ERR=64 THEN LOCATE 25,45:PRINT "Bad name. Try again.";:COLOR 7:RESUME 380
  49. 490  IF ERR=71 THEN PRINT "Disk not ready. Correct and press any key.";:GOTO 510
  50. 500  PRINT "Please report to Steven Linhart that error #"ERR"occured in line"ERL".";
  51. 510  COLOR 7:M$=INPUT$(1):GOSUB 430:RESUME 20
  52.